package com.example.it.looker.view;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

import java.util.List;

/**
 * Created by 鲁迅认识的那只猹 on 9/1/2017 4:01 PM.
 * Emial 1258730808@qq.com
 * Desc:
 */

public abstract class CommonAdapter<T> extends BaseAdapter {

    private List<T> dataSource;
    private Context context;

    public CommonAdapter(Context context, List<T> dataSource) {
        this.context = context;
        this.dataSource = dataSource;
    }

    @Override
    public int getCount() {
        return this.dataSource.size();
    }

    @Override
    public Object getItem(int position) {
        return dataSource.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public abstract View getView(int position, View convertView, ViewGroup parent);

    public List<T> getDataSource() {
        return dataSource;
    }

    public Context getContext() {
        return context;
    }

    /**
     * 向数据源指定的位置，插入一个集合
     *
     * @param position 插入的位置 ，当pisition 小于0 那么默认向最后插入
     * @param list     将要插入的集合
     */
    public void addRange(int position, List<T> list) {
        if (position < 0) {
            this.dataSource.addAll(list);
        } else {
            this.dataSource.addAll(position, list);
        }
    }

    /**
     * 向数据源指定的位置，插入一条数据
     *
     * @param position 插入的位置 ，当pisition 小于0 那么默认向最后插入
     * @param t        将要插入的数据
     */
    public void add(int position, T t) {
        if (position < 0) {
            this.getDataSource().add(t);
        } else {
            this.dataSource.add(position, t);
        }
    }


}
